home *** CD-ROM | disk | FTP | other *** search
/ Interactive Media Design Review 1999 / Interactive Media Design Review 1999.iso / pc / Demos / Bombardier_PC / DATACH.CST / 00054_Script_54 < prev    next >
Text File  |  1999-03-07  |  12KB  |  296 lines

  1. --
  2. -- clear database fields in cast starting at startingcast
  3. -- ond ending when a castmember called "***end***" is reached
  4.  
  5. on eraseDataBaseFields startingcast
  6.   global competestate
  7.   set currentDBcast = startingcast
  8.   set the floatPrecision = 2
  9.   repeat while true
  10.     set findname = the name of member currentDBcast
  11.     if findname = "***end***" then
  12.       exit repeat
  13.     else
  14.       set the text of member currentDBcast = " "
  15.     end if
  16.     set currentDBcast = currentDBcast + 1
  17.   end repeat
  18. end
  19.  
  20. -- junkdatabasefields  
  21. -- startingcast = castnum to start at
  22. -- fillstring = value to set fields to
  23.  
  24. on junkDataBaseFields startingcast, fillstring
  25.   global competestate
  26.   set currentDBcast = startingcast
  27.   set the floatPrecision = 2
  28.   repeat while true
  29.     set findname = the name of member currentDBcast
  30.     if findname = "***end***" then
  31.       exit repeat
  32.     else
  33.       if   findname = "tFuel" then
  34.         set the text of member currentDBcast = fillstring
  35.       else
  36.         set the text of member currentDBcast = " "
  37.       end if
  38.     end if
  39.     set currentDBcast = currentDBcast + 1
  40.   end repeat
  41. end
  42.  
  43. -- getfieldvalue gets the value of field called fieldnametofind starting at startingcast
  44. -- returns that fields value
  45. --
  46. on getfieldvalue startingcast, fieldnametofind
  47.   set currentDBcast = startingcast
  48.   repeat while true
  49.     set findname = the name of member currentDBcast
  50.     if findname = "***end***" then
  51.       exit repeat
  52.     else
  53.       if   findname = fieldnametofind then
  54.         set outvalue = the text of member currentDBcast
  55.       end if
  56.     end if
  57.     set currentDBcast = currentDBcast + 1
  58.   end repeat
  59.   return outvalue
  60. end
  61.  
  62. -- setfieldvalue
  63. -- finds a field named fieldnametofind 
  64. -- by searching through the cast starting at startingcast.
  65. -- when the field is found it's text is changed to newfieldvalue.
  66.  
  67. on setfieldvalue startingcast, fieldnametofind, newfieldvalue
  68.   set currentDBcast = startingcast
  69.   repeat while true
  70.     set findname = the name of member currentDBcast
  71.     if findname = "***end***" then
  72.       exit repeat
  73.     else
  74.       if   findname = fieldnametofind then
  75.         set the text of member currentDBcast = newfieldvalue
  76.       end if
  77.     end if
  78.     set currentDBcast = currentDBcast + 1
  79.   end repeat
  80.   return outvalue
  81. end
  82.  
  83.  
  84. -- fill data for annual cost screen (main plane)
  85. on getannualcostsmain
  86.   global currentplane
  87.   global llairprice, llresidual, lldepreciation, lllease, llnadirect
  88.   global llnafixed, lledirect, llefixed, llnabudget, llebudget, llemult
  89.   global allairprice, allresidual, alldepreciation, alllease, allnadirect
  90.   global allnafixed, alledirect, allefixed, allnabudget, allebudget
  91.   watchcursor()
  92.   set llnadirect = value(losemoney(the text of field "aabartotal"))
  93.   getannualcosts(currentplane)
  94.   set allairprice = llairprice
  95.   set allresidual = llresidual
  96.   set alldepreciation = lldepreciation
  97.   set alllease = lllease
  98.   set allnadirect = llnadirect
  99.   set allnafixed = llnafixed
  100.   --  set alledirect = lledirect
  101.   --  set allefixed = llefixed
  102.   set allnabudget = llnabudget
  103.   set allebudget = llebudget
  104.   set the text of field "lairprice" = "$ "&formatch(llairprice)
  105.   set the text of field "lresidual" = "$ "&formatch(llresidual)
  106.   set the text of field "ldepreciation" = "$ "&formatch(lldepreciation)
  107.   set the text of field "llease" = "$ "&formatch(lllease)
  108.   set the text of field "lnadirect" = "$ "&formatch(llnadirect)
  109.   set the text of field "lnafixed" = "$ "&formatch(llnafixed)
  110.   --  set the text of field "ledirect" = "$ "&formatch(lledirect)
  111.   --  set the text of field "lefixed" = "$ "&formatch(llefixed)
  112.   set the text of field "lnabudget" = "$ "&formatch(llnabudget)
  113.   --  set the text of field "lebudget" = "$ "&formatch(llebudget)
  114.   set cplane = the text of field "acplanename"
  115.   if (length(cplane) > 2) and  (cplane<>"No Competitor") then
  116.     getannualcostscomp
  117.     --    compareannualcosts
  118.   end if
  119.   arrowcursor()
  120. end
  121.  
  122. -- fill data for annual cost screen (competitor)
  123. on getannualcostscomp
  124.   global currentplane
  125.   global llairprice, llresidual, lldepreciation, lllease, llnadirect
  126.   global llnafixed, lledirect, llefixed, llnabudget, llebudget, llemult
  127.   global cllairprice, cllresidual, clldepreciation, clllease, cllnadirect
  128.   global cllnafixed, clledirect, cllefixed, cllnabudget, cllebudget
  129.   watchcursor()
  130.   set llnadirect = value(losemoney(the text of field "acbartotal"))
  131.   getannualcosts(the text of field "acplanename")
  132.   set cllairprice = llairprice
  133.   set cllresidual = llresidual
  134.   set clldepreciation = lldepreciation
  135.   set clllease = lllease
  136.   set cllnadirect = llnadirect
  137.   set cllnafixed = llnafixed
  138.   set clledirect = lledirect
  139.   set cllefixed = llefixed
  140.   set cllnabudget = llnabudget
  141.   set cllebudget = llebudget
  142.   set the text of field "lcairprice" = "$ "&formatch(llairprice)
  143.   set the text of field "lcresidual" = "$ "&formatch(llresidual)
  144.   set the text of field "lcdepreciation" = "$ "&formatch(lldepreciation)
  145.   set the text of field "lclease" = "$ "&formatch(lllease)
  146.   set the text of field "lcnadirect" = "$ "&formatch(llnadirect)
  147.   set the text of field "lcnafixed" = "$ "&formatch(llnafixed)
  148.   --  set the text of field "lcedirect" = "$ "&formatch(lledirect)
  149.   --  set the text of field "lcefixed" = "$ "&formatch(llefixed)
  150.   set the text of field "lcnabudget" = "$ "&formatch(llnabudget)
  151.   --  set the text of field "lcebudget" = "$ "&formatch(llebudget)
  152.   compareannualcosts
  153.   arrowcursor()
  154. end
  155.  
  156. -- displays negative numbers as "(87)" instead of "-87" 
  157.  
  158. on fixnegnums instrx1, instrx2
  159.   set ssx1 = value(instrx1)
  160.   set ssx2 = value(instrx2)
  161.   set ssx = (ssx1 - ssx2)
  162.   if ssx < 0 then
  163.     set outstrx = "($ "&string(formatch(0-ssx))&")"
  164.   else set outstrx = "$ "&string(formatch(ssx))
  165.   return outstrx
  166. end
  167.  
  168. -- fill comparison fields in annual cost screen
  169.  
  170. on compareannualcosts
  171.   global cllairprice, cllresidual, clldepreciation, clllease, cllnadirect
  172.   global cllnafixed, clledirect, cllefixed, cllnabudget, cllebudget
  173.   global allairprice, allresidual, alldepreciation, alllease, allnadirect
  174.   global allnafixed, alledirect, allefixed, allnabudget, allebudget
  175.   set the text of field "ldairprice" = fixnegnums(allairprice, cllairprice)
  176.   set the text of field "ldresidual" = fixnegnums(allresidual, cllresidual)
  177.   set the text of field "lddepreciation" = fixnegnums(alldepreciation,clldepreciation)
  178.   set the text of field "ldlease" = fixnegnums(alllease, clllease)
  179.   set the text of field "ldnadirect" = fixnegnums(allnadirect, cllnadirect)
  180.   set the text of field "ldnafixed" = fixnegnums(allnafixed,cllnafixed)
  181.   set the text of field "ldedirect" = fixnegnums(alledirect, clledirect)
  182.   set the text of field "ldefixed" = fixnegnums(allefixed, cllefixed)
  183.   set the text of field "ldnabudget" = fixnegnums(allnabudget, cllnabudget)
  184.   set the text of field "ldebudget" = fixnegnums(allebudget, cllebudget)
  185. end
  186.  
  187.  
  188. on DGRSGetFieldValuech fieldname,handlefordb
  189. --  put fieldname
  190.   set iout = DGRSGetFieldValue(fieldname,handlefordb)
  191.   if iout = "#ERROR#" then 
  192.     alert fieldname & " not found"
  193.   else 
  194.     --    put fieldname & "=" & iout
  195.   end if
  196.   return iout
  197. end
  198.  
  199. -- get data for annual costs
  200.  
  201. on getannualcosts dataplane
  202.   global llairprice, llresidual, lldepreciation, lllease, llnadirect
  203.   global llnafixed, lledirect, llefixed, llnabudget, llebudget, llemult
  204.   global DBRECORD, DBHANDLE
  205.   
  206.   
  207.   -- read data directly from tables into global variables
  208.   -- and calculate as needed
  209.   set DBRECORD = DGcreateRecordset("SELECT * FROM Table1price", DBHANDLE)
  210.   set chquery = "Aircraft = " & QUOTE & dataplane & QUOTE
  211.   set outresult =DGRSfindFirst(chquery, DBRECORD) 
  212.   -- put dataplanename & " - "outresult & "= out"
  213.   if outresult<> 0 then
  214.     set llairprice = value(DGRSGetFieldValuech("price completed",DBRECORD))
  215.     set llresidual = value(DGRSGetFieldValuech("Residual value",DBRECORD))
  216.     set lldepreciation = value(llairprice) - value(llresidual)
  217.     set lllease = value(DGRSGetFieldValuech("Annual Lease",DBRECORD))
  218.   else
  219.     alert("table1price not found-"&dataplane)
  220.   end if
  221.   if DBRECORD > 0 then
  222.     if DGRSIsOpen(DBRECORD) then 
  223.       DGRSClose(DBRECORD)
  224.     end if 
  225.   end if
  226.   set DBRECORD = DGcreateRecordset("SELECT * FROM cost_per_hours", DBHANDLE)
  227.   set chquery = "Aircraft = " & QUOTE & dataplane & QUOTE
  228.   set outresult =DGRSfindFirst(chquery, DBRECORD) 
  229.   -- put dataplanename & " - "outresult & "= out"
  230.   if outresult<> 0 then
  231.     set cchours = value(DGRSGetFieldValuech("hours",DBRECORD))
  232.     set llemult = cchours
  233.     -- put "direct="&llnadirect&", mult="&llemult
  234.     set llnadirect = llnadirect * llemult
  235.   else
  236.     alert("costperhours not found-"&dataplane)
  237.   end if
  238.   if DBRECORD > 0 then
  239.     if DGRSIsOpen(DBRECORD) then 
  240.       DGRSClose(DBRECORD)
  241.     end if 
  242.   end if
  243.   -- set nadirect
  244.   set DBRECORD = DGcreateRecordset("SELECT * FROM cost_per_region", DBHANDLE)
  245.   set chquery = "Aircraft = " & QUOTE & dataplane & QUOTE
  246.   set outresult =DGRSfindFirst(chquery, DBRECORD) 
  247.   -- put dataplanename & " - "outresult & "= out"
  248.   if outresult<> 0 then
  249.     set cxx = integer(value(DGRSGetFieldValuech("captain salary",DBRECORD)))
  250.     set cxx = cxx + integer(value(DGRSGetFieldValuech("co pilot salary",DBRECORD)))
  251.     set cxx = cxx + integer(value(DGRSGetFieldValuech("benefits",DBRECORD)))
  252.     set cxx = cxx + integer(value(DGRSGetFieldValuech("hangar",DBRECORD)))
  253.     set cxx = cxx + integer(value(DGRSGetFieldValuech("computerized Maintenance",DBRECORD)))
  254.     set cxx = cxx + integer(value(DGRSGetFieldValuech("Navigation Chart Services",DBRECORD)))
  255.     set cxx = cxx + integer(value(DGRSGetFieldValuech("Weather Services",DBRECORD)))
  256.     set xcc = integer(value(DGRSGetFieldValuech("aircraft hull insurance",DBRECORD)))
  257.     set xcc = xcc + integer(value(DGRSGetFieldValuech("Legal Liability",DBRECORD)))
  258.     set xcc = xcc + integer(value(DGRSGetFieldValuech("Admitted Liability",DBRECORD)))
  259.     set xcc = xcc + integer(value(DGRSGetFieldValuech("Training (transport)",DBRECORD)))
  260.     set xcc = xcc + integer(value(DGRSGetFieldValuech("Interior Reserve",DBRECORD)))
  261.     set xcc = xcc + integer(value(DGRSGetFieldValuech("Aircraft Modernization",DBRECORD)))
  262.   else
  263.     --    alert("costperregion not found-"&dataplane)
  264.     NOTHING
  265.   end if
  266.   set llnafixed = (cxx + (xcc))
  267.   set outresult =DGRSfindNext(chquery, DBRECORD) 
  268.   -- put dataplanename & " - "outresult & "= out"
  269.   if outresult<> 0 then
  270.     set cxx = value(DGRSGetFieldValue("captain salary",DBRECORD))
  271.     set cxx = cxx + value(DGRSGetFieldValuech("co pilot salary",DBRECORD))
  272.     set cxx = cxx + value(DGRSGetFieldValuech("benefits",DBRECORD))
  273.     set cxx = cxx + value(DGRSGetFieldValuech("hangar",DBRECORD))
  274.     set cxx = cxx + value(DGRSGetFieldValuech("computerized Maintenance",DBRECORD))
  275.     set cxx = cxx + value(DGRSGetFieldValuech("Navigation Chart Services",DBRECORD))
  276.     set cxx = cxx + value(DGRSGetFieldValuech("Weather Services",DBRECORD))
  277.     set xcc = value(DGRSGetFieldValuech("aircraft hull insurance",DBRECORD))
  278.     set xcc = xcc + value(DGRSGetFieldValuech("Legal Liability",DBRECORD))
  279.     set xcc = xcc + value(DGRSGetFieldValuech("Admitted Liability",DBRECORD))
  280.     set xcc = xcc + value(DGRSGetFieldValuech("Training(transport)",DBRECORD))
  281.     set xcc = xcc + value(DGRSGetFieldValuech("Interior Reserve",DBRECORD))
  282.     set xcc = xcc + value(DGRSGetFieldValuech("Aircraft Modernization",DBRECORD))
  283.   else
  284.     --    alert("costperregion2 not found-"&dataplane)
  285.   end if
  286.   set llefixed = (cxx + (xcc))
  287.   if DBRECORD > 0 then
  288.     if DGRSIsOpen(DBRECORD) then 
  289.       DGRSClose(DBRECORD)
  290.     end if 
  291.   end if
  292.   set llnabudget = (lllease + llnadirect + llnafixed)
  293.   set llebudget = (lllease + lledirect + llefixed)
  294.   --  put "na"&&lllease&&llnadirect&&llnafixed&&llnabudget
  295. end
  296.